Computing systems and associated networks have greatly revolutionized our world. Computing systems operate via the use of software, which includes instructions that instruct the hardware of a computing system to operate in particular ways. Software is often initially drafted using source code that has semantics that are more recognizable and readable to a trained human coder. A software “build” involves the construction of an observable and tangible result using the source code. For instance, the result of a software build might include standalone software artifacts that can be run on a computer, or might include software in an interpreted language.
Modern computer programs may be quite large, often involving more than a million lines of source code and thousands of executable components (e.g., components, functions, objects, and the like). Build systems are often used in such large-scale software development projects. The build systems can typically be distributed across multiple build processing systems that each perform a portion of the entire build. The source code files, themselves, are typically stored in a centralized repository.
The build process can be extremely intricate and complex for such large computer programs. Furthermore, builds of such large computer programs occur incrementally, with potentially many incremental builds being performed prior to the final product represented by the computer program being ready to deploy. Nevertheless, it is a matter of considerable complexity to identify source code files that have changed since the last build, identify files that are dependent upon those source code files, retrieve those files onto the appropriate processing system of the build system, and build the resulting executable artifacts. Thus, even an incremental build can take substantial time for large computer programs.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.